On computer systems running Mac OS X and on mobile devices running iOS, Core Data is an object graph and persistence framework provided by Apple Inc. of Cupertino, Calif. Core Data handles many of the duties of the data model in a model-view-controller design. For example, Core Data allows data organized by the relational entity-attribute model to be serialized into various local data stores. The data can be manipulated using higher-level objects representing entities and their relationships, while Core Data provides queries against the data and handles local persistence.
However, in many cases, an application running on a client device may wish to synchronize locally-managed data with data stored “in the cloud” or in a remote data store. To that end, methods are needed to determine which locally-managed objects need synchronization and when.